﻿using System;

namespace LiveGeometry
{
    public class Encoding
    {
        public static string FromWindows1251(byte[] bytes)
        {
            char[] result = new char[bytes.Length];
            for (int i = 0; i < bytes.Length; i++)
            {
                if (bytes[i] < 128)
                {
                    result[i] = Convert.ToChar(bytes[i]);
                }
                else
                {
                    result[i] = Convert.ToChar(windows1251[bytes[i] - 128]);
                }
            }
            return new string(result);
        }

        static char[] windows1251 =
        {
            'Ђ',
            'Ѓ',
            '‚',
            'ѓ',
            '„',
            '…',
            '†',
            '‡',
            '€',
            '‰',
            'Љ',
            '‹',
            'Њ',
            'Ќ',
            'Ћ',
            'Џ',
            'ђ',
            '‘',
            '’',
            '“',
            '”',
            '•',
            '–',
            '—',
            ' ',
            '™',
            'љ',
            '›',
            'њ',
            'ќ',
            'ћ',
            'џ',
            ' ',
            'Ў',
            'ў',
            'Ј',
            '¤',
            'Ґ',
            '¦',
            '§',
            'Ё',
            '©',
            'Є',
            '«',
            '¬',
            ' ',
            '®',
            'Ї',
            '°',
            '±',
            'І',
            'і',
            'ґ',
            'µ',
            '¶',
            '·',
            'ё',
            '№',
            'є',
            '»',
            'ј',
            'Ѕ',
            'ѕ',
            'ї',
            'А',
            'Б',
            'В',
            'Г',
            'Д',
            'Е',
            'Ж',
            'З',
            'И',
            'Й',
            'К',
            'Л',
            'М',
            'Н',
            'О',
            'П',
            'Р',
            'С',
            'Т',
            'У',
            'Ф',
            'Х',
            'Ц',
            'Ч',
            'Ш',
            'Щ',
            'Ъ',
            'Ы',
            'Ь',
            'Э',
            'Ю',
            'Я',
            'а',
            'б',
            'в',
            'г',
            'д',
            'е',
            'ж',
            'з',
            'и',
            'й',
            'к',
            'л',
            'м',
            'н',
            'о',
            'п',
            'р',
            'с',
            'т',
            'у',
            'ф',
            'х',
            'ц',
            'ч',
            'ш',
            'щ',
            'ъ',
            'ы',
            'ь',
            'э',
            'ю',
            'я',
        };
    }
}
